#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n) {

    int i = 0, j = 0;
    while (n > 0)
    {
        if (nums2[j] >= nums1[i]&&i<m)i++;
        else
        {
            if (i >= m)
            {
                for (int tmp = i; tmp < nums1Size; tmp++)
                {
                    nums1[tmp] = nums2[j++];
                    n--; m++;
                }
                break;
            }
            else
            {
                for (int tmp = m; tmp > i; tmp--)
                {
                    nums1[tmp] = nums1[tmp - 1];
                }
                nums1[i++] = nums2[j++];
                m++; n--;
            }
        }
    }
}

int main()
{
    int nums1[6] = { 1,2,3,0,0,0 };
    int nums2[3] = { 2,5,6 };
    int m = 3;
    int n = 3;
    int nums1Size = 6;
    int nums2Size = 3;

    merge(nums1, nums1Size, m, nums2, nums2Size, n);
	return 0;
}